﻿using AlphaD.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AlphaD.Stage
{
    class Program
    {
        static void Main(string[] args)
        {
            LinearDiffEq2DiscontBvp problem = new LinearDiffEq2DiscontBvp
            (
                BoundaryCondition.CreateFirst(0, 0),
                BoundaryCondition.CreateFirst(3, 1),
                new double[] { 1, 2 },
                new double[] { 1, 1, 1 },
                new double[] { 1, 1, 1 },
                new double[] { 0, 0, 0 },
                new double[] { 0.1, 0.1 }
            );
            ISlarStrategy slarStrategy = new SlarStrategy();
            ILinearDiffEq2BvpStrategy bvpStrategy = new LinearDiffEq2BvpStrategy(slarStrategy);
            ILinearDiffEq2DiscontBvpStrategy discontBvpStrategy = new LinearDiffEq2DiscontBvpStrategy(bvpStrategy);

            IEnumerable<IFunction<double, double>> slution = discontBvpStrategy.Resolve(problem);

            Console.ReadKey();
        }
    }
}
